ref class StrategyAbstractOptions;
ref class StrategyAbstract
{
public:
	StrategyAbstract(Symbol ^owner, StrategyAbstractOptions ^options);

protected:
	Symbol ^owner;
	StrategyAbstractOptions ^strategyOptions;

	virtual void HistoryBarsCompleted() = 0;
	virtual void NewBarAdded(Bar ^barInformation) = 0;
	virtual void NewMarketData(MarketDataTypes whatChanged, float price) = 0;
	virtual void OrderStatusChanged(int orderIndex, OrderData ^orderData, bool firstTimeThatGotQuantity) = 0;
};

// ****************************************************************************************************

ref class StrategyAbstractOptions
{
public:
	virtual void SetToDefault() = 0;

};